package com.smart.call.domain;

import com.smart.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 通话队列对象 call_queue
 * 
 * @author smart
 */
public class CallQueue extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 队列ID */
    private Long queueId;

    /** 主叫号码 */
    private String callerNumber;

    /** 技能组ID */
    private Long skillGroupId;

    /** 优先级 */
    private Integer priority;

    /** 进入队列时间 */
    private Date enterTime;

    /** 等待时长（秒） */
    private Integer waitDuration;

    /** 队列状态（0等待中 1已分配 2已超时 3已放弃） */
    private String status;

    /** 分配座席ID */
    private Long assignedAgentId;

    /** 备注 */
    private String remark;

    public void setQueueId(Long queueId) 
    {
        this.queueId = queueId;
    }

    public Long getQueueId() 
    {
        return queueId;
    }

    public void setCallerNumber(String callerNumber) 
    {
        this.callerNumber = callerNumber;
    }

    public String getCallerNumber() 
    {
        return callerNumber;
    }

    public void setSkillGroupId(Long skillGroupId) 
    {
        this.skillGroupId = skillGroupId;
    }

    public Long getSkillGroupId() 
    {
        return skillGroupId;
    }

    public void setPriority(Integer priority) 
    {
        this.priority = priority;
    }

    public Integer getPriority() 
    {
        return priority;
    }

    public void setEnterTime(Date enterTime) 
    {
        this.enterTime = enterTime;
    }

    public Date getEnterTime() 
    {
        return enterTime;
    }

    public void setWaitDuration(Integer waitDuration) 
    {
        this.waitDuration = waitDuration;
    }

    public Integer getWaitDuration() 
    {
        return waitDuration;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setAssignedAgentId(Long assignedAgentId) 
    {
        this.assignedAgentId = assignedAgentId;
    }

    public Long getAssignedAgentId() 
    {
        return assignedAgentId;
    }

    public void setRemark(String remark) 
    {
        this.remark = remark;
    }

    public String getRemark() 
    {
        return remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("queueId", getQueueId())
            .append("callerNumber", getCallerNumber())
            .append("skillGroupId", getSkillGroupId())
            .append("priority", getPriority())
            .append("enterTime", getEnterTime())
            .append("waitDuration", getWaitDuration())
            .append("status", getStatus())
            .append("assignedAgentId", getAssignedAgentId())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}